package com.weiqiao.mall.repository;

import com.weiqiao.base.dao.IBaseMongoDao;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 轮播图 持久化层 接口
 *
 */
public interface ISlideshowRepository extends IBaseMongoDao {
    /**
     * 根据条件查询所有，做排序
     *
     * @param filter
     * @param sort
     * @return
     */
    public List<String> getListByFilterSort(Bson filter, Bson sort);

    /**
     * 通过条件获取一条信息
     *
     * @param filter
     * @return
     */
    public String getOneByFilter(Bson filter);

    /**
     * 更新轮播图 修改
     *
     * @param filter   查询条件
     * @param document 内容
     * @return bool
     */
    public boolean updateCarouse(Bson filter, Document document);

    /**
     * 批量修改商品信息
     *
     * @param filter 查询条件
     */
    List<String> getCarouseList(Bson filter);

    /**
     * 更新轮播图 新增
     *
     * @param filter 查询条件
     * @param json   更新内容
     */
    boolean updateCarouse(Bson filter, String json);

    /**
     * 查询轮播图 列表
     *
     * @param company_id
     * @param doc
     * @param pageable
     * @return
     */
    List<String> findCarouseList(int company_id, Document doc, Pageable pageable);

    /**
     * 查询  统计数量
     *
     * @param bson 查询条件
     */
    int countByBson(Bson bson);


    /**
     * 删除轮播图
     *
     * @param filter filter
     * @return bool
     */
    boolean deleteById(Bson filter);

    /**
     * 获取轮播图集合并指定输出
     * @param filter 查询条件
     * @param project 指定输出
     * @return
     */
    List<String> getCarouseList(Document filter, Document project);
}
